package entities.concept;

import java.util.HashSet;
import java.util.Set;

import entities.role.Role;

/**
 * This class serves as a type for absorption techniques.
 * 
 * Typically, any atomic concept (and its negation) can occur on the LHS of an
 * absorbed axiom.
 * 
 * @author j55wu
 * 
 */
public abstract class AtomicConcept extends Concept {

	@Override
	public Set<Role> extractRoles() {
		Set<Role> fs = new HashSet<Role>();
		return fs;
	}

	@Override
	public boolean hasUniversalInside(){
		return false;
	}

	@Override
	public boolean isParameterized() {
		return false;
	}

	@Override
	public Concept makeParameterized() {
		return this;
	}

	@Override
	public Concept initParameters(Role f, String v) {
		// TODO Auto-generated method stub
		return this;
	}

	@Override
	public Set<AtomicConcept> extracAtomicConcepts() {
		Set<AtomicConcept> cs = new HashSet<AtomicConcept>();
		cs.add(this);
		return cs;
	}

	@Override
	public Set<Role> extractFeatures() {
		Set<Role> fs = new HashSet<Role>();
		return fs;
	}

	@Override
	public Set<String> extractConstants() {
		Set<String> ks = new HashSet<String>();
		return ks;
	}

}
